package grafica.obstaculos;

import grafica.ControlGraficos;
import grafica.Entity;

/**
 * Clase ObstaculoDestructibleEntity: modela los objetos ObstaculoDestructible gráficamente que se encuentran en el nivel. 
 * @author Amorosi, Javier (94528)
 * @author Antiman, Nehuen (102440)
 */
public abstract class ObstaculoDestructibleEntity extends ObstaculoEntity {
	
	protected int resistencia;

	/**
	 * Constructor de la clase ObstaculoDestructibleEntity
	 * @param _game el juego donde se encuentra la entidad. 
	 * @param ref referencia a la representacion gráfica de la entidad.
	 * @param f posición en filas de la entidad.
	 * @param c posición en columnas de la entidad.
	 */
	public ObstaculoDestructibleEntity(ControlGraficos _game, String ref, int f,
			int c, int resistencia) {
		super(_game, ref, f, c);
		this.resistencia=resistencia;
	}
	
	/**
	 * En caso de que la lógica del juego lo indique, este objeto será removido del juego
	 * al colisionar con alguna bala. 
	 */
	public void collidedWith(Entity other) {
		resistencia--;
		if (resistencia==0)
			game.remove(this);
	}
}
